home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Power.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  19.1 KB  |  534 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Power.p
  3.  
  4.      Contains:    Power Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1990-1997 by Apple Computer, Inc.  All rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Power;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __POWER__}
  28. {$SETC __POWER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC PowerIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __MIXEDMODE__}
  38. {$I MixedMode.p}
  39. {$ENDC}
  40.  
  41.  
  42. {$PUSH}
  43. {$ALIGN MAC68K}
  44. {$LibExport+}
  45.  
  46.  
  47. CONST
  48.                                                                 {  Bit positions for ModemByte  }
  49.     modemOnBit                    = 0;
  50.     ringWakeUpBit                = 2;
  51.     modemInstalledBit            = 3;
  52.     ringDetectBit                = 4;
  53.     modemOnHookBit                = 5;
  54.  
  55.                                                                 {  masks for ModemByte  }
  56.     modemOnMask                    = $01;
  57.     ringWakeUpMask                = $04;
  58.     modemInstalledMask            = $08;
  59.     ringDetectMask                = $10;
  60.     modemOnHookMask                = $20;
  61.  
  62.                                                                 {  bit positions for BatteryByte  }
  63.     chargerConnBit                = 0;
  64.     hiChargeBit                    = 1;
  65.     chargeOverFlowBit            = 2;
  66.     batteryDeadBit                = 3;
  67.     batteryLowBit                = 4;
  68.     connChangedBit                = 5;
  69.  
  70.                                                                 {  masks for BatteryByte  }
  71.     chargerConnMask                = $01;
  72.     hiChargeMask                = $02;
  73.     chargeOverFlowMask            = $04;
  74.     batteryDeadMask                = $08;
  75.     batteryLowMask                = $10;
  76.     connChangedMask                = $20;
  77.  
  78.                                                                 {  bit positions for SoundMixerByte  }
  79.     MediaBaySndEnBit            = 0;
  80.     PCISndEnBit                    = 1;
  81.     ZVSndEnBit                    = 2;
  82.     PCCardSndEnBit                = 3;
  83.  
  84.                                                                 {  masks for SoundMixerByte  }
  85.     MediaBaySndEnMask            = $01;
  86.     PCISndEnMask                = $02;
  87.     ZVSndEnMask                    = $04;
  88.     PCCardSndEnMask                = $08;
  89.  
  90.                                                                 {  commands to SleepQRec sleepQProc  }
  91.     sleepRequest                = 1;
  92.     sleepDemand                    = 2;
  93.     sleepWakeUp                    = 3;
  94.     sleepRevoke                    = 4;
  95.     sleepUnlock                    = 4;
  96.     sleepDeny                    = 5;
  97.     sleepNow                    = 6;
  98.     dozeDemand                    = 7;
  99.     dozeWakeUp                    = 8;
  100.     dozeRequest                    = 9;
  101.  
  102.                                                                 {  SleepQRec.sleepQFlags  }
  103.     noCalls                        = 1;
  104.     noRequest                    = 2;
  105.     slpQType                    = 16;
  106.     sleepQType                    = 16;
  107.  
  108. { bits in bitfield returned by PMFeatures }
  109.     hasWakeupTimer                = 0;                            {  1=wakeup timer is supported                                 }
  110.     hasSharedModemPort            = 1;                            {  1=modem port shared by SCC and internal modem             }
  111.     hasProcessorCycling            = 2;                            {  1=processor cycling is supported                             }
  112.     mustProcessorCycle            = 3;                            {  1=processor cycling should not be turned off                 }
  113.     hasReducedSpeed                = 4;                            {  1=processor can be started up at reduced speed             }
  114.     dynamicSpeedChange            = 5;                            {  1=processor speed can be switched dynamically             }
  115.     hasSCSIDiskMode                = 6;                            {  1=SCSI Disk Mode is supported                             }
  116.     canGetBatteryTime            = 7;                            {  1=battery time can be calculated                             }
  117.     canWakeupOnRing                = 8;                            {  1=can wakeup when the modem detects a ring                 }
  118.     hasDimmingSupport            = 9;                            {  1=has dimming support built in (DPMS standby by default)     }
  119.     hasStartupTimer                = 10;                            {  1=startup timer is supported                                 }
  120.     hasChargeNotification        = 11;                            {  1=client can determine of charge connect status change notifications available  }
  121.     hasDimSuspendSupport        = 12;                            {  1=supports dimming LCD and CRT to DPMS suspend state         }
  122.  
  123. { bits in bitfield returned by GetIntModemInfo and set by SetIntModemState }
  124.     hasInternalModem            = 0;                            {  1=internal modem installed                         }
  125.     intModemRingDetect            = 1;                            {  1=internal modem has detected a ring                 }
  126.     intModemOffHook                = 2;                            {  1=internal modem is off hook                         }
  127.     intModemRingWakeEnb            = 3;                            {  1=wakeup on ring is enabled                         }
  128.     extModemSelected            = 4;                            {  1=external modem selected                         }
  129.     modemSetBit                    = 15;                            {  1=set bit, 0=clear bit (SetIntModemState)         }
  130.  
  131. { bits in BatteryInfo.flags                                     }
  132. { ("chargerConnected" doesn't mean the charger is plugged in)    }
  133.     batteryInstalled            = 7;                            {  1=battery is currently connected                     }
  134.     batteryCharging                = 6;                            {  1=battery is being charged                         }
  135.     chargerConnected            = 5;                            {  1=charger is connected to the PowerBook             }
  136.  
  137.     HDPwrQType                    = $4844;                        {  'HD' hard disk spindown queue element type         }
  138.     PMgrStateQType                = $504D;                        {  'PM' Power Manager state queue element type         }
  139.  
  140. { client notification bits in PMgrQueueElement.pmNotifyBits }
  141.     pmSleepTimeoutChanged        = 0;
  142.     pmSleepEnableChanged        = 1;
  143.     pmHardDiskTimeoutChanged    = 2;
  144.     pmHardDiskSpindownChanged    = 3;
  145.     pmDimmingTimeoutChanged        = 4;
  146.     pmDimmingEnableChanged        = 5;
  147.     pmDiskModeAddressChanged    = 6;
  148.     pmProcessorCyclingChanged    = 7;
  149.     pmProcessorSpeedChanged        = 8;
  150.     pmWakeupTimerChanged        = 9;
  151.     pmStartupTimerChanged        = 10;
  152.     pmHardDiskPowerRemovedbyUser = 11;
  153.     pmChargeStatusChanged        = 12;
  154.  
  155. { System Activity Selectors }
  156.     OverallAct                    = 0;                            {  general type of activity                             }
  157.     UsrActivity                    = 1;                            {  user specific type of activity                     }
  158.     NetActivity                    = 2;                            {  network specific activity                         }
  159.     HDActivity                    = 3;                            {  Hard Drive activity                                 }
  160.  
  161. { Storage Media sleep mode defines }
  162.     kMediaModeOn                = 0;                            {  Media active (Drive spinning and at full power)     }
  163.     kMediaModeStandBy            = 1;                            {  Media standby (not implemented)     }
  164.     kMediaModeSuspend            = 2;                            {  Media Idle (not implemented)     }
  165.     kMediaModeOff                = 3;                            {  Media Sleep (Drive not spinning and at min power, max recovery time)     }
  166.  
  167.     kMediaPowerCSCode            = 70;
  168.  
  169.  
  170. { definitions for HDQueueElement.hdFlags    }
  171.     kHDQueuePostBit                = 0;                            {  1 = call this routine on the second pass         }
  172.     kHDQueuePostMask            = $01;
  173.  
  174.  
  175. TYPE
  176.     ActivityInfoPtr = ^ActivityInfo;
  177.     ActivityInfo = RECORD
  178.         ActivityType:            INTEGER;                                {  Type of activity to be fetched.  Same as UpdateSystemActivity Selectors  }
  179.         ActivityTime:            LONGINT;                                {  Time of last activity (in ticks) of specified type.  }
  180.     END;
  181.  
  182. { information returned by GetScaledBatteryInfo }
  183.     BatteryInfoPtr = ^BatteryInfo;
  184.     BatteryInfo = PACKED RECORD
  185.         flags:                    UInt8;                                    {  misc flags (see below)                             }
  186.         warningLevel:            UInt8;                                    {  scaled warning level (0-255)                         }
  187.         reserved:                UInt8;                                    {  reserved for internal use                         }
  188.         batteryLevel:            UInt8;                                    {  scaled battery level (0-255)                         }
  189.     END;
  190.  
  191.     ModemByte                            = SInt8;
  192.     BatteryByte                            = SInt8;
  193.     SoundMixerByte                        = SInt8;
  194.     PMResultCode                        = LONGINT;
  195.     SleepQRecPtr = ^SleepQRec;
  196.     HDQueueElementPtr = ^HDQueueElement;
  197.     PMgrQueueElementPtr = ^PMgrQueueElement;
  198.     SleepQProcPtr = Register68kProcPtr;  { FUNCTION SleepQ(message: LONGINT; qRecPtr: SleepQRecPtr): LONGINT; }
  199.  
  200.     HDSpindownProcPtr = ProcPtr;  { PROCEDURE HDSpindown(VAR theElement: HDQueueElement); }
  201.  
  202.     PMgrStateChangeProcPtr = ProcPtr;  { PROCEDURE PMgrStateChange(VAR theElement: PMgrQueueElement; stateBits: LONGINT); }
  203.  
  204.     SleepQUPP = UniversalProcPtr;
  205.     HDSpindownUPP = UniversalProcPtr;
  206.     PMgrStateChangeUPP = UniversalProcPtr;
  207.     SleepQRec = RECORD
  208.         sleepQLink:                SleepQRecPtr;                            {  pointer to next queue element                 }
  209.         sleepQType:                INTEGER;                                {  queue element type (must be SleepQType)         }
  210.         sleepQProc:                SleepQUPP;                                {  pointer to sleep universal proc ptr             }
  211.         sleepQFlags:            INTEGER;                                {  flags                                         }
  212.     END;
  213.  
  214.     HDQueueElement = RECORD
  215.         hdQLink:                HDQueueElementPtr;                        {  pointer to next queue element                 }
  216.         hdQType:                INTEGER;                                {  queue element type (must be HDPwrQType)         }
  217.         hdFlags:                INTEGER;                                {  miscellaneous flags                             }
  218.         hdProc:                    HDSpindownUPP;                            {  pointer to routine to call                     }
  219.         hdUser:                    LONGINT;                                {  user-defined (variable storage, etc.)         }
  220.     END;
  221.  
  222.     PMgrQueueElement = RECORD
  223.         pmQLink:                PMgrQueueElementPtr;                    {  pointer to next queue element                 }
  224.         pmQType:                INTEGER;                                {  queue element type (must be PMgrStateQType)     }
  225.         pmFlags:                INTEGER;                                {  miscellaneous flags                             }
  226.         pmNotifyBits:            LONGINT;                                {  bitmap of which changes to be notified for     }
  227.         pmProc:                    PMgrStateChangeUPP;                        {  pointer to routine to call                     }
  228.         pmUser:                    LONGINT;                                {  user-defined (variable storage, etc.)         }
  229.     END;
  230.  
  231.  
  232.     BatteryTimeRecPtr = ^BatteryTimeRec;
  233.     BatteryTimeRec = RECORD
  234.         expectedBatteryTime:    LONGINT;                                {  estimated battery time remaining (seconds)     }
  235.         minimumBatteryTime:        LONGINT;                                {  minimum battery time remaining (seconds)         }
  236.         maximumBatteryTime:        LONGINT;                                {  maximum battery time remaining (seconds)         }
  237.         timeUntilCharged:        LONGINT;                                {  time until battery is fully charged (seconds) }
  238.     END;
  239.  
  240.  
  241.     WakeupTimePtr = ^WakeupTime;
  242.     WakeupTime = RECORD
  243.         wakeTime:                LONGINT;                                {  wakeup time (same format as current time)         }
  244.         wakeEnabled:            BOOLEAN;                                {  1=enable wakeup timer, 0=disable wakeup timer     }
  245.         filler:                    SInt8;
  246.     END;
  247.  
  248.  
  249.     StartupTimePtr = ^StartupTime;
  250.     StartupTime = RECORD
  251.         startTime:                LONGINT;                                {  startup time (same format as current time)         }
  252.         startEnabled:            BOOLEAN;                                {  1=enable startup timer, 0=disable startup timer     }
  253.         filler:                    SInt8;
  254.     END;
  255.  
  256. FUNCTION DisableWUTime: OSErr;
  257. FUNCTION SetWUTime(WUTime: LONGINT): OSErr;
  258. FUNCTION GetWUTime(VAR WUTime: LONGINT; VAR WUFlag: SignedByte): OSErr;
  259. FUNCTION BatteryStatus(VAR Status: SignedByte; VAR Power: SignedByte): OSErr;
  260. FUNCTION ModemStatus(VAR Status: SignedByte): OSErr;
  261. FUNCTION IdleUpdate: LONGINT;
  262.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  263.     INLINE $A285, $2E80;
  264.     {$ENDC}
  265. FUNCTION GetCPUSpeed: LONGINT;
  266.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  267.     INLINE $70FF, $A485, $2E80;
  268.     {$ENDC}
  269. PROCEDURE EnableIdle;
  270.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  271.     INLINE $7000, $A485;
  272.     {$ENDC}
  273. PROCEDURE DisableIdle;
  274.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  275.     INLINE $7001, $A485;
  276.     {$ENDC}
  277. PROCEDURE SleepQInstall(qRecPtr: SleepQRecPtr);
  278.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  279.     INLINE $205F, $A28A;
  280.     {$ENDC}
  281. PROCEDURE SleepQRemove(qRecPtr: SleepQRecPtr);
  282.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  283.     INLINE $205F, $A48A;
  284.     {$ENDC}
  285. PROCEDURE AOn;
  286.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  287.     INLINE $7004, $A685;
  288.     {$ENDC}
  289. PROCEDURE AOnIgnoreModem;
  290.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  291.     INLINE $7005, $A685;
  292.     {$ENDC}
  293. PROCEDURE BOn;
  294.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  295.     INLINE $7000, $A685;
  296.     {$ENDC}
  297. PROCEDURE AOff;
  298.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  299.     INLINE $7084, $A685;
  300.     {$ENDC}
  301. PROCEDURE BOff;
  302.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  303.     INLINE $7080, $A685;
  304.     {$ENDC}
  305.  
  306. { Public Power Management API (NEW!) }
  307.  
  308. FUNCTION PMSelectorCount: INTEGER;
  309.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  310.     INLINE $7000, $A09E, $3E80;
  311.     {$ENDC}
  312. FUNCTION PMFeatures: LONGINT;
  313.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  314.     INLINE $7001, $A09E, $2E80;
  315.     {$ENDC}
  316. FUNCTION GetSleepTimeout: ByteParameter;
  317.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  318.     INLINE $7002, $A09E, $1E80;
  319.     {$ENDC}
  320. PROCEDURE SetSleepTimeout(timeout: ByteParameter);
  321.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  322.     INLINE $101F, $4840, $303C, $0003, $A09E;
  323.     {$ENDC}
  324. FUNCTION GetHardDiskTimeout: ByteParameter;
  325.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  326.     INLINE $7004, $A09E, $1E80;
  327.     {$ENDC}
  328. PROCEDURE SetHardDiskTimeout(timeout: ByteParameter);
  329.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  330.     INLINE $101F, $4840, $303C, $0005, $A09E;
  331.     {$ENDC}
  332. FUNCTION HardDiskPowered: BOOLEAN;
  333.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  334.     INLINE $7006, $A09E, $1E80;
  335.     {$ENDC}
  336. PROCEDURE SpinDownHardDisk;
  337.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  338.     INLINE $7007, $A09E;
  339.     {$ENDC}
  340. FUNCTION IsSpindownDisabled: BOOLEAN;
  341.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  342.     INLINE $7008, $A09E, $1E80;
  343.     {$ENDC}
  344. PROCEDURE SetSpindownDisable(setDisable: BOOLEAN);
  345.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  346.     INLINE $101F, $4840, $303C, $0009, $A09E;
  347.     {$ENDC}
  348. FUNCTION HardDiskQInstall(VAR theElement: HDQueueElement): OSErr;
  349.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  350.     INLINE $205F, $700A, $A09E, $3E80;
  351.     {$ENDC}
  352. FUNCTION HardDiskQRemove(VAR theElement: HDQueueElement): OSErr;
  353.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  354.     INLINE $205F, $700B, $A09E, $3E80;
  355.     {$ENDC}
  356. PROCEDURE GetScaledBatteryInfo(whichBattery: INTEGER; VAR theInfo: BatteryInfo);
  357.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  358.     INLINE $205F, $301F, $4840, $303C, $000C, $A09E, $2080;
  359.     {$ENDC}
  360. PROCEDURE AutoSleepControl(enableSleep: BOOLEAN);
  361.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  362.     INLINE $101F, $4840, $303C, $000D, $A09E;
  363.     {$ENDC}
  364. FUNCTION GetIntModemInfo: LONGINT;
  365.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  366.     INLINE $700E, $A09E, $2E80;
  367.     {$ENDC}
  368. PROCEDURE SetIntModemState(theState: INTEGER);
  369.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  370.     INLINE $301F, $4840, $303C, $000F, $A09E;
  371.     {$ENDC}
  372. FUNCTION MaximumProcessorSpeed: INTEGER;
  373.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  374.     INLINE $7010, $A09E, $3E80;
  375.     {$ENDC}
  376. FUNCTION CurrentProcessorSpeed: INTEGER;
  377.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  378.     INLINE $7011, $A09E, $3E80;
  379.     {$ENDC}
  380. FUNCTION FullProcessorSpeed: BOOLEAN;
  381.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  382.     INLINE $7012, $A09E, $1E80;
  383.     {$ENDC}
  384. FUNCTION SetProcessorSpeed(fullSpeed: BOOLEAN): BOOLEAN;
  385.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  386.     INLINE $101F, $4840, $303C, $0013, $A09E, $1E80;
  387.     {$ENDC}
  388. FUNCTION GetSCSIDiskModeAddress: INTEGER;
  389.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  390.     INLINE $7014, $A09E, $3E80;
  391.     {$ENDC}
  392. PROCEDURE SetSCSIDiskModeAddress(scsiAddress: INTEGER);
  393.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  394.     INLINE $301F, $4840, $303C, $0015, $A09E;
  395.     {$ENDC}
  396. PROCEDURE GetWakeupTimer(VAR theTime: WakeupTime);
  397.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  398.     INLINE $205F, $7016, $A09E;
  399.     {$ENDC}
  400. PROCEDURE SetWakeupTimer(VAR theTime: WakeupTime);
  401.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  402.     INLINE $205F, $7017, $A09E;
  403.     {$ENDC}
  404. FUNCTION IsProcessorCyclingEnabled: BOOLEAN;
  405.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  406.     INLINE $7018, $A09E, $1E80;
  407.     {$ENDC}
  408. PROCEDURE EnableProcessorCycling(enable: BOOLEAN);
  409.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  410.     INLINE $101F, $4840, $303C, $0019, $A09E;
  411.     {$ENDC}
  412. FUNCTION BatteryCount: INTEGER;
  413.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  414.     INLINE $701A, $A09E, $3E80;
  415.     {$ENDC}
  416. FUNCTION GetBatteryVoltage(whichBattery: INTEGER): Fixed;
  417.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  418.     INLINE $301F, $4840, $303C, $001B, $A09E, $2E80;
  419.     {$ENDC}
  420. PROCEDURE GetBatteryTimes(whichBattery: INTEGER; VAR theTimes: BatteryTimeRec);
  421.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  422.     INLINE $205F, $301F, $4840, $303C, $001C, $A09E;
  423.     {$ENDC}
  424. FUNCTION GetDimmingTimeout: ByteParameter;
  425.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  426.     INLINE $701D, $A09E, $1E80;
  427.     {$ENDC}
  428. PROCEDURE SetDimmingTimeout(timeout: ByteParameter);
  429.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  430.     INLINE $101F, $4840, $303C, $001E, $A09E;
  431.     {$ENDC}
  432. PROCEDURE DimmingControl(enableSleep: BOOLEAN);
  433.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  434.     INLINE $101F, $4840, $303C, $001F, $A09E;
  435.     {$ENDC}
  436. FUNCTION IsDimmingControlDisabled: BOOLEAN;
  437.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  438.     INLINE $7020, $A09E, $1E80;
  439.     {$ENDC}
  440. FUNCTION IsAutoSlpControlDisabled: BOOLEAN;
  441.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  442.     INLINE $7021, $A09E, $1E80;
  443.     {$ENDC}
  444. FUNCTION PMgrStateQInstall(VAR theElement: PMgrQueueElement): OSErr;
  445.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  446.     INLINE $205F, $7022, $A09E, $3E80;
  447.     {$ENDC}
  448. FUNCTION PMgrStateQRemove(VAR theElement: PMgrQueueElement): OSErr;
  449.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  450.     INLINE $205F, $7023, $A09E, $3E80;
  451.     {$ENDC}
  452. FUNCTION UpdateSystemActivity(activity: ByteParameter): OSErr;
  453.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  454.     INLINE $101F, $4840, $303C, $0024, $A09E, $3E80;
  455.     {$ENDC}
  456. FUNCTION DelaySystemIdle: OSErr;
  457.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  458.     INLINE $7025, $A09E, $3E80;
  459.     {$ENDC}
  460. FUNCTION GetStartupTimer(VAR theTime: StartupTime): OSErr;
  461.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  462.     INLINE $205F, $7026, $A09E, $3E80;
  463.     {$ENDC}
  464. FUNCTION SetStartupTimer(VAR theTime: StartupTime): OSErr;
  465.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  466.     INLINE $205F, $7027, $A09E, $3E80;
  467.     {$ENDC}
  468. FUNCTION GetLastActivity(VAR theActivity: ActivityInfo): OSErr;
  469.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  470.     INLINE $205F, $7028, $A09E, $3E80;
  471.     {$ENDC}
  472. FUNCTION GetSoundMixerState(VAR theSoundMixerByte: SoundMixerByte): OSErr;
  473.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  474.     INLINE $205F, $7029, $A09E, $3E80;
  475.     {$ENDC}
  476. FUNCTION SetSoundMixerState(VAR theSoundMixerByte: SoundMixerByte): OSErr;
  477.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  478.     INLINE $205F, $702A, $A09E, $3E80;
  479.     {$ENDC}
  480. FUNCTION GetDimSuspendState: BOOLEAN;
  481.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  482.     INLINE $702B, $A09E, $1E80;
  483.     {$ENDC}
  484. PROCEDURE SetDimSuspendState(dimSuspendState: BOOLEAN);
  485.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  486.     INLINE $101F, $4840, $303C, $002C, $A09E;
  487.     {$ENDC}
  488.  
  489. CONST
  490.     uppSleepQProcInfo = $00131832;
  491.     uppHDSpindownProcInfo = $000000C0;
  492.     uppPMgrStateChangeProcInfo = $000003C0;
  493.  
  494. FUNCTION NewSleepQProc(userRoutine: SleepQProcPtr): SleepQUPP;
  495.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  496.     INLINE $2E9F;
  497.     {$ENDC}
  498.  
  499. FUNCTION NewHDSpindownProc(userRoutine: HDSpindownProcPtr): HDSpindownUPP;
  500.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  501.     INLINE $2E9F;
  502.     {$ENDC}
  503.  
  504. FUNCTION NewPMgrStateChangeProc(userRoutine: PMgrStateChangeProcPtr): PMgrStateChangeUPP;
  505.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  506.     INLINE $2E9F;
  507.     {$ENDC}
  508.  
  509. FUNCTION CallSleepQProc(message: LONGINT; qRecPtr: SleepQRecPtr; userRoutine: SleepQUPP): LONGINT;
  510.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  511.     {To be implemented:  Glue to move parameters into registers.}
  512.     {$ENDC}
  513.  
  514. PROCEDURE CallHDSpindownProc(VAR theElement: HDQueueElement; userRoutine: HDSpindownUPP);
  515.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  516.     INLINE $205F, $4E90;
  517.     {$ENDC}
  518.  
  519. PROCEDURE CallPMgrStateChangeProc(VAR theElement: PMgrQueueElement; stateBits: LONGINT; userRoutine: PMgrStateChangeUPP);
  520.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  521.     INLINE $205F, $4E90;
  522.     {$ENDC}
  523.  
  524. {$ALIGN RESET}
  525. {$POP}
  526.  
  527. {$SETC UsingIncludes := PowerIncludes}
  528.  
  529. {$ENDC} {__POWER__}
  530.  
  531. {$IFC NOT UsingIncludes}
  532.  END.
  533. {$ENDC}
  534.